
var _RPC_NEXT = 0;

function nextId(){
	_RPC_NEXT += 1;
	return _RPC_NEXT;
}

var _RPC_ENDPOINT = null;

function rpcEndPoint(endpoint){
	_RPC_ENDPOINT = endpoint;
}

function rpcCall(methodName, args, callback) {
  var pkt = jQuery.toJSON({'method' : methodName, 'params' : args, "jsonrpc": "2.0", "id": nextId()});  
  jQuery.post(_RPC_ENDPOINT, pkt, callback);
}

function rpcErrorCode(data){
  if (data.error) {
    return data.error.code;  
  } else {
    return 0;  
  }
}

function rpcError(data){
	  if (data.error) {
	    return data.error;  
	  } else {
	    return null;  
	  }
	}


function rpcSuccess(data){
  return rpcErrorCode(data) != 0 ? false : true; 
}

function rpcRetVal(data){
  if (data.result)
    return data.result;
  return null;
}